// 阿里云 uniCloud 云函数入口文件
'use strict';

// 初始化阿里云 uniCloud 环境
uniCloud.init({
  provider: 'aliyun' // 指定阿里云服务商
});

// 获取数据库引用
const db = uniCloud.database();
// 指向 addUser 集合（对应数据库表）
const userCollection = db.collection('addUser');

// 云函数入口函数
exports.main = async (event, context) => {
  try {
    const { username, email, password } = event;

    // 1. 校验必填参数
    if (!username ||!email ||!password) {
      return {
        code: 400,
        msg: '用户名、邮箱、密码不能为空'
      };
    }

    // 2. 检查邮箱是否已被注册（防止重复）
    const checkRes = await userCollection.where({
      email: email
    }).get();

    if (checkRes.result && checkRes.result.data.length > 0) {
      return {
        code: 409,
        msg: '该邮箱已注册，请更换邮箱'
      };
    }

    // 3. 插入用户数据到阿里云数据库
    const addRes = await userCollection.add({
      username: username,
      email: email,
      password: password, // 注意：生产环境务必加密！
      createTime: db.serverDate(), // 阿里云服务器时间
      status: 1 // 1=正常，0=禁用
    });

    // 4. 返回成功结果
    return {
      code: 200,
      msg: '注册成功',
      data: {
        userId: addRes.result.id // 返回用户ID
      }
    };

  } catch (err) {
    console.error('注册失败异常:', err);
    // 5. 异常处理
    return {
      code: 500,
      msg: '服务器内部错误',
      error: err.message
    };
  }
};